{
 "metadata": {
  "name": ""
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "heading",
     "level": 1,
     "metadata": {},
     "source": [
      "Closed Form IA ALgorithm"
     ]
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "This notebook simulates the Closed Form Interference Alignment algorithm."
     ]
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Some initialization code"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%pylab inline\n",
      "\n",
      "# xxxxxxxxxx Add the parent folder to the python path. xxxxxxxxxxxxxxxxxxxx\n",
      "import sys\n",
      "import os\n",
      "pyphysim_folder = \"~/cvs_files/pyphysim/\"\n",
      "pyphysim_folder = os.path.expanduser(pyphysim_folder)\n",
      "sys.path.append(pyphysim_folder)\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "import numpy as np\n",
      "\n",
      "# Import the simulation runner\n",
      "from apps.simulate_ia import ClosedFormSimulationRunner\n",
      "from pyphysim.simulations import results\n",
      "\n",
      "# We will use clear_output to erase the progressbar after the simulation has finished.\n",
      "from IPython.display import clear_output\n",
      "\n",
      "# We will use pprint to print the simulation parameters\n",
      "from pprint import pprint"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Populating the interactive namespace from numpy and matplotlib\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Run the algorithm"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "%%file ia_config_file_closed.txt\n",
      "\n",
      "[Scenario]\n",
      "        SNR = [  0.   5.  10.  15.  20.  25.  30.]\n",
      "        M = 4\n",
      "        modulator = PSK\n",
      "        NSymbs = 100\n",
      "        Nr = 2\n",
      "        Nt = 2\n",
      "        Ns = 1\n",
      "[General]\n",
      "        rep_max = 50\n",
      "        max_bit_errors = 10000\n",
      "        unpacked_parameters = SNR,"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Overwriting ia_config_file_closed.txt\n"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "First we need to create a \"view\" of the engines. Note that you need to start the engines before calling the code below."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from IPython.parallel import Client\n",
      "cl = Client()\n",
      "dview = cl.direct_view()\n",
      "\n",
      "# Add the folder containing PyPhysim to the python path in all the\n",
      "# engines\n",
      "dview.execute('import sys')\n",
      "dview.execute('sys.path.append(\"{0}\")'.format(pyphysim_folder))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 3,
       "text": [
        "<AsyncResult: execute>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "markdown",
     "metadata": {},
     "source": [
      "All we need to do now is creating the runner object, call its \"simulate\" method (or the simulate_in_parallel method) and save the results to a file."
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "runner_parallel = ClosedFormSimulationRunner('ia_config_file_closed.txt', read_command_line_args=False)\n",
      "pprint(runner_parallel.params.parameters)\n",
      "runner_parallel.simulate_in_parallel(dview)\n",
      "\n",
      "# xxxxxxxxxx Get the parameters xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "K = 3  # Always 3 form the closed form IA algorithm\n",
      "Nr = runner_parallel.params[\"Nr\"]\n",
      "Nt = runner_parallel.params[\"Nt\"]\n",
      "Ns = runner_parallel.params[\"Ns\"]\n",
      "modulator_name = runner_parallel.modulator.name\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "# File name (without extension) for the figure and result files.\n",
      "results_filename_parallel = 'ia_closedform_results_{0}_{1}x{2}({3})_120_parallel'.format(\n",
      "    modulator_name,\n",
      "    Nr,\n",
      "    Nt,\n",
      "    Ns)\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "# xxxxxxxxxx Save the simulation results to a file xxxxxxxxxxxxxxxxxxxx\n",
      "runner_parallel.results.save_to_file('{0}.pickle'.format(results_filename_parallel))\n",
      "# xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n",
      "\n",
      "print \"Runned iterations: {0}\".format(runner_parallel.runned_reps)\n",
      "print \"Elapsed Time: {0}\".format(runner_parallel.elapsed_time)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "{'K': 3,\n",
        " 'M': 4,\n",
        " 'NSymbs': 100,\n",
        " 'Nr': 2,\n",
        " 'Ns': 1,\n",
        " 'Nt': 2,\n",
        " 'SNR': array([  0.,   5.,  10.,  15.,  20.,  25.,  30.]),\n",
        " 'max_bit_errors': 10000,\n",
        " 'max_iterations': array([60]),\n",
        " 'modulator': 'PSK',\n",
        " 'rep_max': 50,\n",
        " 'unpacked_parameters': ['SNR']}\n"
       ]
      },
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "Runned iterations: [50, 50, 50, 50, 50, 50, 50]\n",
        "Elapsed Time: 0.65s\n",
        "\r",
        "[                       0%                       ]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\r",
        "[**********************100%**********************]  SNR: [  0.   5.  10.  15.  20.  25.  30.]\n"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 2,
     "metadata": {},
     "source": [
      "Plot the results"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "results_parallel = results.SimulationResults.load_from_file('{0}.pickle'.format(\n",
      "    results_filename_parallel))\n",
      "\n",
      "# Get the BER and SER from the results object\n",
      "ber_parallel = results_parallel.get_result_values_list('ber')\n",
      "ser_parallel = results_parallel.get_result_values_list('ser')\n",
      "\n",
      "# Get the SNR from the simulation parameters\n",
      "SNR_parallel = np.array(results_parallel.params['SNR'])\n",
      "\n",
      "# Can only plot if we simulated for more then one value of SNR\n",
      "if SNR_parallel.size > 1:\n",
      "    fig = figure(figsize=(12,9))\n",
      "    semilogy(SNR_parallel, ber_parallel, '--g*', label='BER')\n",
      "    semilogy(SNR_parallel, ser_parallel, '--b*', label='SER')\n",
      "    xlabel('SNR')\n",
      "    ylabel('Error')\n",
      "    title('Closed Form IA Algorithm\\nK={0}, Nr={1}, Nt={2}, Ns={3}, {4}'.format(K, Nr, Nt, Ns, modulator_name))\n",
      "    legend()\n",
      "\n",
      "    grid(True, which='both', axis='both')\n",
      "    show()"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "display_data",
       "png": "iVBORw0KGgoAAAANSUhEUgAAAtcAAAI7CAYAAAAnCLekAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3XlcVHX7//HXAOIGCriQIkam4q4tWm6F+lVzt0jNrMS1\nUnNJS9Hcy6XMMMvbtCLMMm+3NBc0NdLMLCtcS9TEcElNEXFDxfn9MT/mlgRj2M4c5v18PHjENcuZ\ni3MxdnHmOp9jsVqtVkREREREJMfcjE5ARERERKSgUHMtIiIiIpJL1FyLiIiIiOQSNdciIiIiIrlE\nzbWIiIiISC5Rcy0iIiIikkvUXItIgTZhwgSeffbZfH3NoKAgNm3alK+v6WxCQkL46KOP8mTbU6dO\npV+/fpne/8knn9C0adM8eW0RkX+j5lpETO/zzz/nwQcfxNvbm/Lly9O2bVu2bdsGgMViyfd8LBZL\npq8bFhZG4cKF8fb2tn8tWbIknzO05TF27Nh0t128eBEvLy/atm2bpW1YrVYqVapEzZo1b7vvTvsg\np8LDw5k/fz4A8fHxuLm5cfPmzTx5LRERR6m5FhFTmzlzJsOGDeO1117j9OnTJCQkMHDgQL766ivA\n1gA6E4vFwsiRI0lOTrZ/denSxaFt3LhxI1fy+Gfzu2zZMipWrEhMTAynTp36121s2bKFlJQUzpw5\nw86dO3OcU1akpqZmeLuz1VlEXJeaaxExraSkJMaPH8+cOXPo3LkzRYsWxd3dnXbt2jFt2rQMn7Nq\n1Spq1qyJr68vzZo14/fff7ffN336dCpUqECJEiWoVq0amzdvBmyN27Rp06hcuTKlS5emW7duJCYm\n2p/36aefcvfdd1O6dGmmTJmS7Z9n/vz5VKlShVKlStGpUydOnjxpv8/NzY05c+ZQpUoVgoOD+fbb\nb6lQoQJvvfUWZcuWpXz58nz55ZesXbuWqlWrUqpUqUz3QZp/NqRRUVH07duXxo0bs3Dhwn/NNyoq\nitDQUDp16kRUVFSmj0tNTWX48OGUKVOGSpUq8d5776U72nzixAk6duxIqVKlqFKlCh9++KH9uRMm\nTODJJ5/k2WefpWTJknzyySfpRn0eeeQRAHx8fChRogQ//PCD/Y+GV155BT8/PypVqkR0dLR9myEh\nIYwdO5bGjRvj7e1Nx44d+fvvv+nRowclS5akQYMGHD169F9/fhGRjKi5FhHT2r59O1evXuXxxx/P\n0uPj4uJ4+umneffdd/n7779p27YtHTp04Pr16xw4cID333+fnTt3cuHCBTZs2EBQUBAA7777LqtW\nrWLLli2cPHkSX19fBg4cCMD+/fsZMGAAn332GSdOnODs2bMcO3bsjnlkdJR18+bNjB49miVLlnDy\n5EnuvvtunnrqqXSPWblyJT/99BP79+/HarVy6tQpUlJSOHnyJJMmTaJv37589tln/Prrr2zdupVJ\nkyZluUk8evQoW7ZsoWvXrnTt2pUFCxbc8fGXL19m2bJldOvWja5du/LFF19w/fr1DB87f/58oqOj\n2bVrF7/88gtffvlluqPmTz31FBUrVuTkyZMsXbqU0aNH880339jvX7VqFV26dCEpKYkePXqke+7W\nrVsB2x9aFy5c4OGHH8ZqtbJjxw6qVavG2bNnefXVV+nTp0+6nBYvXszChQs5fvw4hw8fpmHDhvTp\n04dz585RvXp1Jk6cmKX9JiLyT2quRcS0zp49S+nSpXFzy9o/ZYsXL6Z9+/a0aNECd3d3RowYwZUr\nV9i+fTvu7u6kpKSwb98+rl+/TsWKFalUqRIAH3zwAa+//jrly5enUKFCjB8/nqVLl5KamsrSpUvp\n0KEDTZo0wdPTk8mTJ98xH6vVyowZM/D19cXX15eyZcsC8Nlnn9GnTx/q1auHp6cnU6dOZfv27fz5\n55/254aHh+Pj40PhwoUBKFSoEGPGjMHd3Z1u3bpx7tw5hg4dSvHixalRowY1atQgNjY2S/vm008/\npUGDBlSoUIEnnniC/fv33/G5y5cvp0SJEjRu3JjmzZsDsGbNmgwf+9///pehQ4dSvnx5fHx8CA8P\nt/+BkZCQwPfff8/06dPx9PSkbt269O3bN11z36hRIzp27AhAkSJF0v1xktk4yN13302fPn2wWCw8\n99xznDx5ktOnTwO2kZhevXpxzz33UKJECdq0aUPVqlVp3rw57u7udOnShV9//TVL+01E5J/UXIuI\naZUqVYq///47yyeznThxgooVK9pji8VCYGAgx48fp3LlykRERDBhwgT8/f3p3r27fSwjPj6exx9/\n3N4Q16hRAw8PD06dOsXJkyepUKGCfZvFihWjVKlSmeZgsVh45ZVXSExMJDEx0d7wpR2tTlO8eHFK\nlSrF8ePH7bcFBgbe9vOnHcUtWrQoAP7+/vb7ixYtyqVLl7K0bxYsWGCf/S5VqhQhISF3HPWIiori\niSeeAMDd3Z3OnTtn+viTJ0+my/3W/XXixAn8/PwoXry4/baKFSum+7lvfXxW3XXXXfbvixUrBthO\n2Exz634qUqSI/Y+ctPjWx4qIOELNtYiYVsOGDSlcuDArVqzI0uMDAgLSjUlYrVYSEhIICAgAoHv3\n7mzdupWjR4/aTzwEW7MXHR1tb4gTExO5fPky5cuXp1y5ciQkJNi3efnyZc6ePXvHPDI62lq+fHni\n4+Pt8aVLlzh79qw9N8j9lU/Stvf9999z6NAhXn/9dcqVK0e5cuXYvn07n3/+eYYnEB47dozNmzcT\nFRVlf/x///tf1q5dy7lz5257/D/30a3fly9fnnPnzqVrZv/88890DfU/f+5b49zYJ0asKCMiBZea\naxExrZIlSzJp0iQGDhzIypUruXz5MtevX2fdunX2xvhWXbp0Yc2aNWzevJnr16/z9ttvU6RIERo1\nakRcXBybN28mJSWFwoULU6RIEdzd3QF44YUXGD16tH1E48yZM6xatQqAJ598ktWrV7Nt2zauXbvG\nuHHj7ngkPbMxhu7duxMZGcmuXbtISUlh9OjRPPzww+mOtOcmq9VqzyUqKopWrVrx22+/sWvXLnbt\n2sXevXu5cuUK69atu+25n376KdWqVSMuLs7++Li4OCpUqMDnn39+2+O7du3KrFmzOHHiBOfPn2f6\n9On2hjYwMJBGjRoRHh5OSkoKu3fv5uOPP+aZZ565Y+5pypQpg5ubG4cPH3b458/oexGRnFJzLSKm\n9vLLLzNz5kxef/11ypYtS8WKFZkzZ479JMdbl5wLDg5m4cKFvPTSS5QpU4Y1a9bw1Vdf4eHhQUpK\nCuHh4ZQpU4Zy5crx999/M3XqVACGDBlCx44dadWqFSVKlKBhw4b8+OOPANSoUYP333+fp59+mvLl\ny+Pn53fb+MatMlv/uUWLFkyePJnQ0FDKly/PkSNH+OKLL9I9L6Nt3Sm+k7Q8UlJSWLJkCS+99BJl\ny5a1fwUFBfHss89meGLjggULGDBgQLrH+/v788ILL2T4+H79+tGqVSvq1KnDAw88QLt27XB3d7fP\npi9atIj4+HjKly/PE088waRJk+xz3Bntr1tvK1asGGPGjKFx48b4+fmxY8eOTJ+TWZyVx4uIZJXF\nqj/ZRUQkH61bt44XX3wx3RiMiEhBoSPXIiKSp65evcratWu5ceMGx48fZ+LEifaTIUVEChoduRYR\nkTx15coVHn30UX7//XeKFi1K+/btmTVrFl5eXkanJiKS69Rci4iIiIjkEo2FiIiIiIjkEjXXIiIi\nIiK5RM21iIiIiEguUXMtIoYJCgpi06ZN9viLL77Az8+PrVu3ZnkbZ8+epXHjxpQuXZqSJUty3333\n8eWXXzqUg7+/P5cvX7bf9uGHH9KsWbMsbyMzZ86coXv37gQEBODj40OTJk3s62NnRUhICEWLFuXY\nsWP22zZu3Mg999yTLv/Nmzc7nFtcXBydOnWibNmylCpViscee4y4uLgsPz8v91uab775hmbNmuHj\n45PuZ3ZU7969cXNz448//sj0MZ988gnu7u54e3vbf4/WrFljv3/KlClUqlQJb29vAgMDeeqpp+z3\nhYSE8NFHH9njmJgY/Pz8+O9//5vtnEXEvNRci4hhbr14R1RUFIMGDWLt2rU0bdo0y9vw8vLi448/\n5vTp0yQlJTFhwgS6du2a7nLa/+bmzZvMmjUrS4+9ceNGlrd78eJFHnroIX755RcSExPp2bMn7dq1\n49KlS1neRvHixZk8eXKm91sslmxdYTApKYnOnTsTFxfHqVOnaNCgAZ06dXJoG47st+zw8vKib9++\nvPXWW9nexnfffccff/yRpYvCNG7cmOTkZM6fP0+fPn3o2rUr58+fJyoqioULF7Jp0yaSk5PZuXMn\n//d//2d/3q2/xxs2bODxxx/nk08+oWvXrtnOW0TMS821iBjKarXywQcfMGLECDZs2MDDDz/s0PML\nFy5McHAwbm5u3Lx5Ezc3N0qXLo2np2eWnm+xWBgxYgQzZswgKSkpw8e4ubkxZ84cqlSpQnBwcJZz\nu+eeexg6dCj+/v5YLBb69evHtWvXsnyE2GKxMHjwYBYtWpThUddnn32WP//8kw4dOuDt7c2MGTOy\nnFv9+vXp1asXPj4+eHh4MHToUA4cOEBiYmKWc7vTfrNarQwbNgx/f39KlixJnTp12LdvX5bzS8ux\nR48e2T5qfePGDQYPHszs2bOz9AdI2mMsFgu9evXiypUrHD58mJ07d9K6dWt7Hv7+/vTt2/e2565e\nvZpu3bqxaNEiOnbsmK2cRcT81FyLiKHmzJnD+PHj2bx5M/fff3+6+3x8fPD19c3w680330z32Dp1\n6lC0aFHCwsJYsWJFlptrgAcffJCQkJA7NqcrV67kp59+Yv/+/fbXyyy3QYMGZbiN2NhYrl27RuXK\nlbOcW0BAAP369WP8+PG33ffpp59SsWJFVq9eTXJyMiNGjAAc229ptmzZQrly5fD19c1ybnfabxs2\nbGDr1q0cPHiQpKQklixZQqlSpQCYNm1apvn5+fll+fX/zTvvvMOjjz5K7dq1HXrejRs3+PDDD/H2\n9qZq1ao8/PDDLFiwgBkzZrBz505SU1Nve86qVat47rnnWLZsGY899lhu/QgiYkIeRicgIq7LarWy\nceNGmjdvTq1atW67//z581ne1u7du7l27RoffPABoaGh/P7771m+SInFYmHSpEk0btyYIUOGZPiY\n8PBwfHx80r2eIy5cuMCzzz7LhAkT8Pb2zvLzLBYL4eHhVK5c2d7Y/xtH9hvAsWPHGDRoEDNnznTo\neXfab4UKFSI5OZnffvuN+vXrpzviP2rUKEaNGuXQazkqISGBefPm8csvv2T5OT/88AO+vr54eHhQ\npUoVVqxYgbe3Nz169MBisRAZGcmECRMoUqQIr776Kq+++ipg+z2OiYmhevXqNGrUKK9+JBExCR25\nFhHDWCwW5s6dy4EDB277mD07PD09eemll/D29k53omRW1KxZk/bt2zNt2rQM53MDAwOzndeVK1fo\n0KEDjRo1YuTIkQ4/v3Tp0gwaNIhx48ZlaXbYEWfOnKFVq1YMHDiQbt26Ofz8zPZb8+bNGTRoEAMH\nDsTf35/nn3+e5OTk3Ez9joYOHcq4cePw9va2j3uk/Xfr1q14e3vj7e2d7qj2ww8/TGJiImfOnOH7\n77+nefPm9vuefvppvv76a5KSkpg7dy5jx47l66+/Bmy/x5MnT8bT05POnTtz7dq1fPs5RcT5qLkW\nEUP5+/uzadMmtm7dyoABA9Ld5+XlZW+C/vk1bdq0TLd548YNihcv7nAuEydOZP78+Rw/fvy2+/7Z\n1NasWTPT3G79OVJSUujcuTMVK1bkgw8+cDinNK+88grffPMNP//88x3zgqzvt8TERFq1akXnzp0J\nDw/Pdm6Z7beXXnqJnTt3sn//fuLi4uwnJk6ZMiXT/EqUKJHtPG61efNmXnnlFcqVK0f58uUBaNiw\nIV988QVNmzYlOTmZ5ORk9uzZ49B23d3defLJJ6lTpw579+613+7l5cXatWtJSkqiS5cuDp34KiIF\ni9ONhVy6dIkBAwZQuHBhQkJCePrpp41OSUTyWLly5di0aROPPvooL7/8sn08ISsrfuzYsYPr16/T\noEEDUlNTeffdd7l69ar9xMiYmBiaN2/OzZs3/3Vb9957L926dWPWrFnUqVPnjo/Nysl5169f58kn\nn6RYsWJ88sknt90fHx9PpUqViI+Pp2LFihluI+1oa8mSJRk+fDjTp09P14D6+/tz+PDhdEdZs7Lf\nLly4QOvWrWnSpAlTpky57f7s7re6desC2GeT77//fooVK0aRIkVwd3cHYPTo0YwePfpft2u1WklJ\nSeH69ev27y0Wi32ePiQkhGbNmmU4j37w4EF77larlXLlyrF69ep/rWtGoqKiKFOmDE2bNqV48eKs\nX7+effv28dBDD6XL1cvLi+joaFq0aMHTTz/NF198gZubjmGJuBqne9cvX76crl27Mm/ePFatWmV0\nOiKSTwIDA9m8eTNLly5lzJgxWX5eSkoKgwYNonTp0lSsWJEtW7YQHR1tn7dOSEigcePGWd7euHHj\nuHz5crojwtkdxfj+++9Zs2YNX3/9NT4+Pvajs9u2bbPnFhQUREBAQKbbuPW1hwwZgoeHR7rbwsPD\nef311/H19XVoZnrFihXs3LmTyMjIdEeN09bUzu5+S3PhwgX69++Pn58fQUFBlC5dmldeeSXL2wP4\n9ttvKVasGO3atSMhIYGiRYumO1nw2LFjNGnSJMPnli5dmrJly1K2bFn7ai2lS5emSJEiGT7+1uX0\n/qlEiRJMmTKFu+++G19fX0aNGsXcuXPTzVenPbdkyZJ8/fXXxMXF0bNnz2wtkygi5maxOtk7f9q0\nabRt25Y6derQo0cPPvvsM6NTEhET69evH127dqVly5ZGp3KbN954g7Jly9KvXz+jU7mNM+83sDXW\nTz31FN99953RqYiIpJMvzXXv3r1Zs2YNZcuWTTffFh0dzdChQ0lNTaVv376MHDmShQsX4uvrS7t2\n7ejevTuLFi3K6/RERERERHJFvjTXW7duxcvLi+eee87eXKemphIcHMzGjRsJCAigfv36LFq0iLvv\nvptBgwZRpEgRmjZtSvfu3fM6PRERERGRXJEvJzQ2bdqU+Pj4dLf9+OOPVK5cmaCgIACeeuopVq5c\nyahRo/j444/zIy0RERERkVxl2Gohx48fT7dubIUKFdixY0eWnpvb67yKiIiIiGTGkUEPw5rrnDbI\nTnYepjggLCwsw2XJxBxUP/NS7cxN9TMv1c7cHO1ZDVuKLyAggISEBHuckJBAhQoVjEpHRERERCTH\nDGuuH3zwQQ4ePEh8fDzXrl1j8eLFdOzY0ah0JB+lzdmLOal+5qXamZvqZ16qnWvJl+a6e/fuNGrU\niLi4OAIDA4mMjMTDw4P33nuP1q1bU6NGDbp160b16tWzvM2wsDBiYmIA25XE0r5X7Pyxj4+PU+Wj\nWPVzlTgkJMSp8lGs+rlKHBIS4lT5KM5aHBERQVhYGI5yuovIZIXFYtHMtYnd+g+NmI/qZ16qnbmp\nfual2pmbo32nYSc0ioiIiIjx/Pz8SExMNDoNw/n6+nLu3Lkcb0dHrkVERERcmPoqm8z2g6P7x7AT\nGkVEREREChrTjoWEhYURFhZmP8EDSHfCgGLnjSMiIqhXr57T5KPYsVj1M2+c9r2z5KNY9XOVOO02\nZ8kno/zEJiYmxr5/IiIiiI2NdXgbGguRfHfrL66Yj+pnXqqdual+5uXstVNfZZNbYyFqrkVERERc\nmPoqG81ci4iIiEiBFhQURLFixfD29sbPz4/27dtz7NgxwDYiXLhwYby9ve1f9913HwDx8fG4ubnZ\nbw8KCmLy5Mn5krOaa8l3mvEyN9XPvFQ7c1P9zMvstbNarYRPDM/R0e3sbsNisbB69WqSk5M5efIk\n/v7+vPTSS/b7Ro4cSXJysv3r119/Tff8pKQkkpOTWbZsGdOnT2ft2rXZ/hmySs21iIiIiGRq2VfL\neP+b91m+ermh2yhcuDChoaHs378fwKFG/YEHHqBmzZr25+Yl0zbXuvy5eeO025wlH8Wqn6vEaasV\nOEs+ilU/V4lvXZ3DGfLJLP6neZHzqNmkJqMjR5Mckkz4x+HUbFKTeZHzMn1OXmwjrYm+fPkyixcv\npmHDhkDWZqHT7v/hhx/Yt28f9evXv+Pjb90fuvy5iIiIiDgss77KarWydNVShs8fTkL9BNgIBAH3\nAhbbY8Y/Op4JIRNue+6EmAlM/HYiWIFDwFHg/yDwp0Bm9p9JaIdQLBbLv+YWFBTE2bNn8fDw4NKl\nS5QtW5bo6Ghq1apFWFgYixcvpkiRIvbHd+7cmcjISOLj46lUqRIlS5YkJSWFq1ev8tZbbzF8+HCH\n94NOaBSnd6e/ksX5qX7mpdqZm+pnXmatncViwWKxcP7ieWr8XANvN2+Wdl2KdYIV63jbV0aNNcCE\nkAm2x0ywsqTrErzdvanxcw3OJ5+3bzerOaxcuZLExERSUlKYPXs2jz76KKdOncJisfDKK6+QmJho\n/4qMjEz3/LNnz3Lx4kXefvttIiIiuHDhQk53y79Scy0iIiIiGTp05BCRwyPZu3IvkSMiOXjkoCHb\nAFuj/fjjj+Pu7s53330HZG3u2s3NjWHDhhEUFMQ777yTrdd2hMZCRERERFyYM/dV99xzDx9++CEt\nWrTAarWyatUqunTpwq5du5g+fTqBgYEZLrGXNhZy48YN3Nxsx5LXrFlDz549+fPPPylWrNhtz9FY\niIiIiIgUeB06dMDb25uSJUsyduxYoqKiqF69OhaLhTfffDPdOtdly5a1P++foyft2rXjrrvu4sMP\nP8zTfHXkWvLdrWdOi/mofual2pmb6mdezl479VU2uXXk2iM3k8pPYWFhhIWF2ZcmAtItdaPYeePY\n2FinykexY7Hqp1ixYsWOxWmcJZ/M8hPbPknbPxEREfb/5zlCR65FREREXJj6KhvNXIuIiIiIOBk1\n15Lv9DGUual+5qXamZvqZ16qnWtRcy0iIiIikks0cy0iIiLiwtRX2WjmWkRERETEyai5lnyn2TNz\nU/3MS7UzN9XPvFQ716J1rhXne6x1ks0dq36KFStW7FicxlnyySw/se2TtP2jda5FRERExGHO3ld9\n9913vPrqq+zfvx93d3eqV69OREQEe/fupU+fPhQrVsz+WIvFQlxcHHfddRdBQUGcPn0ad3d3ihcv\nTsuWLXn//fcpUaJEhq+jmWsRERERyXNWq5Xw8Ddz1IBndxsXLlygffv2DBkyhMTERI4fP8748eMp\nXLgwFouFxo0bk5ycbP+6cOECd911F2BrilevXk1ycjK7du1iz549vP7669n+GbJKzbXkO30MZW6q\nn3mpduam+pmX2Wu3bNl63n//JMuXb8j3bcTFxWGxWOjWrRsWi4UiRYrQsmVLateujdVqzXKz7u/v\nT6tWrdi3b1920neImmsRERERuc28eQupWbM9o0dvJTl5JuHhW6hZsz3z5i3Mt20EBwfj7u5OWFgY\n0dHRJCYmOvQzpDXfx44dIzo6moceesih52eHZq5FREREXFhmfZXVamXp0miGD99CQsJUIBx4FGgN\nWAAYPx4mTLh9mxMmwMSJAFYgGtgCTCUwMJyZMx8lNLQ1FoslS/n9/vvvTJ8+nY0bN/LXX3/Rtm1b\n5s+fz9q1a+nXrx9eXl72x5YuXZqDBw8CEBQUxNmzZ7FYLFy8eJFOnTqxbNky3NwyPrasmWsRERER\n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\n",
       "text": [
        "<matplotlib.figure.Figure at 0x3d92790>"
       ]
      }
     ],
     "prompt_number": 5
    }
   ],
   "metadata": {}
  }
 ]
}